home *** CD-ROM | disk | FTP | other *** search
/ All for Cell Phones: Sony Ericsson / Sony-Ericsson 2004.iso / Java / BitmapPainter / BitmapPainter.jar / PainterCanvas.class (.txt) < prev    next >
Encoding:
Java Class File  |  2001-11-01  |  3.9 KB  |  153 lines

  1. import javax.microedition.lcdui.Canvas;
  2. import javax.microedition.lcdui.Command;
  3. import javax.microedition.lcdui.CommandListener;
  4. import javax.microedition.lcdui.Displayable;
  5. import javax.microedition.lcdui.Font;
  6. import javax.microedition.lcdui.Form;
  7. import javax.microedition.lcdui.Graphics;
  8.  
  9. public class PainterCanvas extends Canvas implements CommandListener {
  10.    private final int SIZE = 9;
  11.    public static final int IMG_WIDTH = 96;
  12.    public static final int IMG_HEIGHT = 46;
  13.    private Form form;
  14.    private Painter midlet;
  15.    private String name;
  16.    // $FF: renamed from: x int
  17.    private int field_0;
  18.    // $FF: renamed from: y int
  19.    private int field_1;
  20.    private int startX;
  21.    private int startY;
  22.    private int col;
  23.    private int row;
  24.    private boolean preview;
  25.    private boolean[][] bitmap = new boolean[96][46];
  26.    private Command saveCommand;
  27.    private Command previewCommand;
  28.    private Command cancelCommand;
  29.  
  30.    public PainterCanvas(Painter var1, Form var2, String var3) {
  31.       this.midlet = var1;
  32.       this.form = var2;
  33.       this.name = var3;
  34.       this.saveCommand = new Command("Save", 1, 1);
  35.       this.previewCommand = new Command("Preview", 1, 2);
  36.       this.cancelCommand = new Command("Finish", 1, 3);
  37.       ((Displayable)this).addCommand(this.saveCommand);
  38.       ((Displayable)this).addCommand(this.previewCommand);
  39.       ((Displayable)this).addCommand(this.cancelCommand);
  40.       ((Displayable)this).setCommandListener(this);
  41.       Painter.fontHeight = Font.getDefaultFont().getHeight();
  42.       Painter.width = ((Canvas)this).getWidth();
  43.       Painter.height = ((Canvas)this).getHeight() - Painter.fontHeight;
  44.       this.field_0 = 0;
  45.       this.field_1 = 0;
  46.       this.startX = 0;
  47.       this.startY = 0;
  48.       this.col = Painter.width / 8;
  49.       this.row = Painter.height / 8;
  50.       if (this.name != null) {
  51.          Store.load(this.name, this.bitmap);
  52.       }
  53.  
  54.       ((Canvas)this).repaint();
  55.       ((Canvas)this).serviceRepaints();
  56.    }
  57.  
  58.    public void clearScreen(Graphics var1) {
  59.       var1.setColor(16777215);
  60.       var1.fillRect(0, 0, Painter.width, Painter.height + Painter.fontHeight);
  61.    }
  62.  
  63.    public void commandAction(Command var1, Displayable var2) {
  64.       if (var1.equals(this.saveCommand)) {
  65.          if (this.name != null) {
  66.             Store.save(this.name, this.bitmap);
  67.          } else {
  68.             SaveForm var3 = new SaveForm(this.midlet, this, this.bitmap);
  69.             this.midlet.display.setCurrent(var3);
  70.          }
  71.       } else if (var1.equals(this.previewCommand)) {
  72.          Preview var4 = new Preview(this.midlet, this, this.bitmap);
  73.          this.midlet.display.setCurrent(var4);
  74.       } else if (var1.equals(this.cancelCommand)) {
  75.          this.midlet.display.setCurrent(this.form);
  76.       }
  77.  
  78.    }
  79.  
  80.    public void keyPressed(int var1) {
  81.       var1 = ((Canvas)this).getGameAction(var1);
  82.       switch (var1) {
  83.          case 1:
  84.             if (this.field_1 > 0) {
  85.                if (this.field_1 == this.startY) {
  86.                   --this.startY;
  87.                }
  88.  
  89.                --this.field_1;
  90.             }
  91.             break;
  92.          case 2:
  93.             if (this.field_0 > 0) {
  94.                if (this.field_0 == this.startX) {
  95.                   --this.startX;
  96.                }
  97.  
  98.                --this.field_0;
  99.             }
  100.          case 3:
  101.          case 4:
  102.          case 7:
  103.          default:
  104.             break;
  105.          case 5:
  106.             if (this.field_0 < 95) {
  107.                if (this.field_0 == this.startX + this.col - 1) {
  108.                   ++this.startX;
  109.                }
  110.  
  111.                ++this.field_0;
  112.             }
  113.             break;
  114.          case 6:
  115.             if (this.field_1 < 45) {
  116.                if (this.field_1 == this.startY + this.row - 1) {
  117.                   ++this.startY;
  118.                }
  119.  
  120.                ++this.field_1;
  121.             }
  122.             break;
  123.          case 8:
  124.             this.bitmap[this.field_0][this.field_1] ^= true;
  125.       }
  126.  
  127.       ((Canvas)this).repaint();
  128.       ((Canvas)this).serviceRepaints();
  129.    }
  130.  
  131.    public void paint(Graphics var1) {
  132.       Font var2 = Font.getDefaultFont();
  133.       this.clearScreen(var1);
  134.       var1.setColor(0);
  135.  
  136.       for(int var3 = 0; var3 < this.col; ++var3) {
  137.          for(int var4 = 0; var4 < this.row; ++var4) {
  138.             var1.drawRect(var3 * 8, var4 * 8, 9, 9);
  139.             if (this.bitmap[var3 + this.startX][var4 + this.startY]) {
  140.                var1.fillRect(var3 * 8 + 3, var4 * 8 + 3, 4, 4);
  141.             }
  142.          }
  143.       }
  144.  
  145.       var1.drawLine((this.field_0 - this.startX) * 8 + 4, (this.field_1 - this.startY) * 8 - 2, (this.field_0 - this.startX) * 8 + 4, (this.field_1 - this.startY + 1) * 8 + 2);
  146.       var1.drawLine((this.field_0 - this.startX) * 8 + 4 + 1, (this.field_1 - this.startY) * 8 - 2, (this.field_0 - this.startX) * 8 + 4 + 1, (this.field_1 - this.startY + 1) * 8 + 2);
  147.       var1.drawLine((this.field_0 - this.startX) * 8 - 2, (this.field_1 - this.startY) * 8 + 4, (this.field_0 - this.startX + 1) * 8 + 2, (this.field_1 - this.startY) * 8 + 4);
  148.       var1.drawLine((this.field_0 - this.startX) * 8 - 2, (this.field_1 - this.startY) * 8 + 4 + 1, (this.field_0 - this.startX + 1) * 8 + 2, (this.field_1 - this.startY) * 8 + 4 + 1);
  149.       String var5 = "X=" + this.field_0 + " Y=" + this.field_1;
  150.       var1.drawString(var5, 0, Painter.height, 20);
  151.    }
  152. }
  153.